﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using HZ.BidSystem.Model;
using System.Data;
namespace HZ.BidSystem.IBLL
{
    public interface IBLL_Common
    {
        #region 项目信息

        /// <summary>
        /// 获取所有项目列表
        /// </summary>
        /// <returns></returns>
        IList<Project> GetProjectList();

        /// <summary>
        /// 根据项目编号获取项目信息
        /// </summary>
        /// <param name="ProjectId"></param>
        /// <returns></returns>
        Project GetProjectInfoById(int ProjectId);

        /// <summary>
        /// 根据项目编号获取项目配置信息
        /// </summary>
        /// <param name="prjectid">项目编号</param>
        /// <returns>项目配置实体</returns>
        ProjectConfig GetProjectConfigById(int projectid);

        #endregion


        #region 用户相关
        /// <summary>
        /// 用户登录，成功返回1，用户名不存在返回2，用户名密码不匹配返回3，数据库故藏返回4，其他错误返回0
        /// </summary>
        /// <param name="username">用户名</param>
        /// <param name="password">密码</param>
        /// <param name="account">account实体</param>
        /// <returns>成功返回1，用户名不存在返回2，用户名密码不匹配返回3，数据库故障返回4，用户未启用返回5， 其他错误返回0</returns>
        int Login(string username, string password, out Account account);

        /// <summary>
        /// 单点登录函数
        /// </summary>
        /// <param name="username"></param>
        /// <param name="account"></param>
        /// <returns>1 成功 2不存在该用户名 3系统故障</returns>
        int SinglePointLogin(string username, out Account account);

        /// <summary>
        /// 用户用户编号获取投标企业信息
        /// </summary>
        /// <param name="companyid">企业编号，accountid</param>
        /// <returns></returns>
        Company GetCompanyById(int companyid);

        /// <summary>
        /// 修改密码
        /// </summary>
        /// <param name="AccountId">账号编号</param>
        /// <param name="oldpassword">旧密码</param>
        /// <param name="newpassword">新密码</param>
        /// <returns>1 成功  2 原密码不正确 3 账号不存在 0 其他失败原因</returns>
        int ChangePassword(Int32 AccountId, string oldpassword, string newpassword);

        /// <summary>
        /// 企业是否有议价品种
        /// </summary>
        /// <param name="companyid"></param>
        /// <returns></returns>         
        int GetBargain(int companyid);

        /// <summary>
        /// 企业是否有议价品种
        /// </summary>
        /// <param name="companyid"></param>
        /// <returns></returns>         
        int GetGoodsBargain(int companyid);

        #endregion

        #region 统计相关

        /// <summary>
        /// 获取所有企业数量
        /// </summary>
        /// <returns></returns>
        int GetAllCompnayCount();
        /// <summary>
        /// 获取已报价企业数量
        /// </summary>
        /// <returns></returns>
        int GetBidCompanyCount();
        /// <summary>
        /// 获取确认报价企业数量
        /// </summary>
        /// <returns></returns>
        int GetConfirmedCompanyCount();

        /// <summary>
        /// 获取所有报价品规数
        /// </summary>
        /// <param name="projectid"></param>
        /// <returns></returns>
        int GetAllGoodsCount(int projectid);

        /// <summary>
        /// 获取已报价品规数
        /// </summary>
        /// <param name="projectid"></param>
        /// <returns></returns>
        int GetBidGoodsCount(int projectid);

        /// <summary>
        /// 获取报价汇总统计
        /// </summary>
        /// <returns></returns>
        DataTable GetBidCount();

        /// <summary>
        /// 获取解密汇总统计
        /// </summary>
        /// <returns></returns>
        DataTable GetDecCount();
        #endregion
    }
}
